--是否启用了xMod,启用了MOD后才可以修改
local isXMOD = SIStartup.XMOD.xmodenable()
--开启的插件槽数量
local moduleNumber = 20

function superM(v)
    local superModule = SIStartup.XMOD.supermodule()
    if superModule then
        v.module_specification = { module_slots = moduleNumber }
        --允许所有插件
        v.allowed_effects = {"consumption", "speed", "productivity", "pollution"}
    end
end

local machinespeed = SIStartup.XMOD.machinespeed()
if isXMOD and machinespeed >= 1 then
    --组装机
    for k, v in pairs(SIGen.GetList(SITypes.entity.machine)) do
        v.crafting_speed = machinespeed
        v.max_health = 60000000
        superM(v)
    end
end

local furnacespeed = SIStartup.XMOD.furnacespeed()
if isXMOD and furnacespeed >= 1 then
    --熔炉
    for k, v in pairs(SIGen.GetList(SITypes.entity.furnace)) do
        v.crafting_speed = furnacespeed
        v.max_health = 60000000
        superM(v)
    end
end

local miningspeed = SIStartup.XMOD.miningspeed()
if isXMOD and miningspeed >= 1 then
    --矿机
    for k, v in pairs(SIGen.GetList(SITypes.entity.mining)) do
        v.mining_speed = miningspeed
        v.max_health = 60000000
        superM(v)
    end
end

--修改人物碰撞面积让人物做草上飞，但是如果有使用填水MOD的时候，人物如果站在水面上的话容易挂
if isXMOD then
    local superman = SIStartup.XMOD.superman()
    if superman then
        for k, v in pairs(SIGen.GetList(SITypes.entity.character)) do
            v.collision_box = {{0, 0}, {0, 0}}
        end
    else
        for k, v in pairs(SIGen.GetList(SITypes.entity.character)) do
            v.collision_box = {{-0.2, -0.2}, {0.2, 0.2}}
        end
    end
end

for k, v in pairs(SIGen.GetList(SITypes.entity.wall)) do
    --城墙血量修改为6000万
    v.max_health = 60000000
end

for k, v in pairs(SIGen.GetList(SITypes.entity.gate)) do
    --城门血量修改为6000万
    v.max_health = 60000000
end

for k, v in pairs(SIGen.GetList(SITypes.entity.spiderVehicle)) do
    --蜘蛛机甲血量修改为6000万
    v.max_health = 60000000
end

for k, v in pairs(SIGen.GetList(SITypes.item.toolRepair)) do
    --修理包的速度及耐久
    v.speed = 2000000
end

--修改所有箱子类容器的默认大小
for k,v in pairs(SIGen.GetList(SITypes.entity.container)) do
    if v.inventory_size ~= nil then
        v.inventory_size = 40000
    end
end